package leetcode;

import com.alibaba.fastjson.JSON;
import org.junit.Test;

/**
 * @author LiDong
 * @version 1.0.0
 * @createTime 2021/10/21
 */
public class Test66 {


    /**
     * 输入：digits = [1,2,3]
     * 输出：[1,2,4]
     * 解释：输入数组表示数字 123。
     * <p>
     * 提示：
     * <p>
     * 1 <= digits.length <= 100
     * 0 <= digits[i] <= 9
     */


    @Test
    public void test() {
        // int[] arr = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
        int[] arr = {1, 2, 4, 9, 9};
        int[] ints = plusTwo(arr);
        System.out.println(JSON.toJSONString(ints));
    }

    // 错误解法 整数长度超限
    public int[] plusOne(int[] digits) {
        StringBuilder num = new StringBuilder();
        for (int i : digits) {
            num.append(i);
        }
        long a = Long.parseLong(num.toString()) + 1;
        int[] arr = new int[String.valueOf(a).length()];
        String temp = String.valueOf(a);
        for (int i = 0; i < temp.toCharArray().length; i++) {
            arr[i] = Character.getNumericValue(temp.toCharArray()[i]);
        }
        return arr;
    }


    public int[] plusTwo(int[] digits) {
        // 逆序遍历 第一个不是 9的位数 1,2,3,9,9
        // 出现 9 的次数
        int cnt = 0;
        for (int i = digits.length - 1; i >= 0; i--) {
            if (digits[i] != 9) {
                // 不等于 9
                digits[i] = digits[i] + 1;
                return digits;
            } else {
                digits[i] = 0;
                cnt++;
            }
        }
        if (cnt == digits.length) {
            int[] arr = new int[cnt + 1];
            arr[0] = 1;
            for (int i = 1; i < arr.length; i++) {
                arr[i] = 0;
            }
            return arr;
        }
        return digits;
    }


}
